<?php
/**
 * Descripción de "foros.php":
 * Objeto que carga los foros de la base de datos.
 *
 * @author peregrina
 */

class foros extends comun{

    function __construct($from, $tipo, $id) {
        parent::__construct($from, $tipo, $id);
    }
            
    function id_definido(){
        //Hacemos el query
        $res = $this->bdd->query("select * from Foros where FID = '$this->id';");
        if(!isset($res)){
            //ID no encontrado
            $GLOBALS["HTTP_Status"] = "404";
            $this->HTML["titulo"] = "Foro no encontrado";
            $this->HTML["cuerpo"] .= "<h1>". $this->HTML["titulo"] ."</h1>\n<p>El foro no existe.</p>";
        }
        else{
            //Si es el autor, poner boton de editar
            $editar = "";
            if ($GLOBALS["aut"]>1){
                $editar .= " <input type='button' value='Editar' onclick= \"post('?fid=crear',{editar:'{$res["FID"]}'})\"/>"; 
            }
            //Creamos la lista
            $res2 = $this->bdd->multiquery("select TID, Nombre from Temas where FID='$this->id';");
            if(!empty($res2)){
                $lista = "<ul>";
                foreach($res2 as $pagina){
                    $lista .= "<li><a href=\"?tid=".$pagina["TID"]."\">".$pagina["Nombre"]."</a></li>\n\t\t";
                }
                
               $lista .= "</ul>";
            }
            else{
                $lista = "No se han creado temas.";
            }
        
            $this->HTML["titulo"] = "Foros: {$res["Nombre"]}";
            $this->HTML["cuerpo"] .= <<<FIN
            <h1><a href='?fid'>Foros:</a> {$res["Nombre"]}$editar</h1>
            <info>{$res["Descripcion"]}</info><br /><br />
            <p>Temas:<br />
                $lista
            </p>  
FIN;
            //Desplegar boton boton de crear tema si eres autor
            if($GLOBALS["aut"]>0){
                $this->HTML["cuerpo"] .= "<input type='button' value='Crear tema' onclick=\"window.location='?tid=crear'\" />";
            }
        }
    }
    
    function id_no_definido(){
        //Buscamos el índice o el último ID
        if(!empty($_GET["i"])){
            $i = $_GET["i"];
        }
        else{
            //Obtenemos el último set
            $res = $this->bdd->multiquery("select * from (select FID from Foros order by FID desc limit {$GLOBALS["iph"]}) Foros order by FID;");
            $i = (isset($res[0]["FID"]))?$res[0]["FID"]:0;
        }
        //Hacemos el query
        $res = $this->bdd->multiquery("select FID, Nombre from Foros where FID>='$i' order by FID limit {$GLOBALS["iph"]};");
        
        
        //Creamos la lista
        if(!empty($res)){
            $lista = "<ul>";
            foreach($res as $foro){
                $lista .= "<li><a href=\"?fid=".$foro["FID"]."\">".$foro["Nombre"]."</a></li>\n\t\t\t";
                $fid_u = $foro["FID"];
            }
            $lista .= "</ul>";
            
            $siga = $this->sig_ant(true, "f", $this->from, $fid_u);
            $anta = $this->sig_ant(false, "f", $this->from, $i);
        }
        else{
            $lista = "No se han creado foros.";
            $siga = $anta = "";
        }
        
        //Construimos el HTML
        $this->HTML["titulo"] = "Foros";
        $this->HTML["cuerpo"] .= <<<FIN
        <h1>{$this->HTML["titulo"]}</h1>
        <p>$lista
        </p>
        $anta $siga <br /><br />
FIN;
        //Desplegar boton boton de crear foro si eres administrador
        if($GLOBALS["aut"]>2){
            $this->HTML["cuerpo"] .= "<input type='button' value='Crear foro' onclick=\"window.location='?fid=crear'\" />";
        }
    }
    
    //Crear foro
    function crear(){
        $this->HTML["titulo"] = "Crear foro";
        $this->HTML["cuerpo"] .= <<<FIN
   <h1>{$this->HTML["titulo"]}</h1>
        <form method="POST" action="?fid=crear" class="edicion">
        <input type="text" name="nombre" value="Nombre del foro" class="noventa"><br />
        <textarea name="descripcion" id="editor">Descripción</textarea><br />
        <input type="submit" name="guardando" value="Guardar" class="noventa">
        </form>
FIN;
        
    }
    
    //Editar el foro
    function editar(){
        //Variables
        $id = $this->bdd->mysqli->real_escape_string($_POST["editar"]);
        //Obtener información
        $res = $this->bdd->query("select * from Foros where FID = '$id';");
        
        $this->HTML["titulo"] = "Editando";
        $this->HTML["cuerpo"] .= <<<FIN
   <h1>{$this->HTML["titulo"]}</h1>
        <form method="POST" action="?fid=crear" class="edicion">
        <input type="text" name="nombre" value="{$res["Nombre"]}" class="noventa" ><br /><br />
        <textarea name="descripcion" id="editor">{$res["Descripcion"]}</textarea><br />
        <input type="hidden" name="editar" value="{$res["FID"]}"/>
        <input type="submit" name="guardando" value="Guardar">
        <input type="button" value="Borrar" onclick="post('?fid=borrar',{editar:'{$res["FID"]}'});"/>
        </form>
FIN;
        
    }
    
    //Guardamos el foro
    function guardar(){
        //Variables
        $nombre = $this->bdd->mysqli->real_escape_string($_POST["nombre"]);
        $descripcion = $this->bdd->mysqli->real_escape_string($_POST["descripcion"]);
        $id = $this->bdd->mysqli->real_escape_string($_POST["editar"]);
        
        //Crear
        if(empty($_POST["editar"])){
            //Inserción
/*             $i = new basededatos();
            $i->insert("insert into Foros values (NULL, '$nombre', '$descripcion');"); */
			$this->bdd->insert("insert into Foros values (NULL, '$nombre', '$descripcion');");
            //Obtener el número de ID
            $res = $this->bdd->query("select FID from Foros order by FID desc limit 1;");
            $id = $res["FID"];
        }
        //Editar
        else{
            //Inserción
            $this->bdd->insert("update Foros set Nombre='$nombre', Descripcion='$descripcion' where FID='$id';"); 
        }
        
        //Retornar a la página
        $this->redirect("fid=$id");
        
    }
    
    //Para borrar un foro completo
    function borrar($from,$tipo,$id){
        //Borramos el foro
        $res = $this->bdd->insert("call Borrar_foro($id);");
        if($res){
            //Retornar al indice
            $this->redirect("{$tipo}id");
        }
        else{
            //Hubo un error
            $error = urlencode("La operación no se pudo completar");
            $this->redirect("{$tipo}id={$id}&error={$error}");
        }
        
    }
}

?>
